﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using UAXInversionesWeb.logicaNegocio;

namespace UAXInversionesWeb.supervisor
{
    public partial class ModificarOperario : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            
        }

        protected void checkOperario_Click(object sender, EventArgs e)
        {
            //consulta datos operario
            bool result = cargarDatosOperario(Int32.Parse(idOperario.Text));

            if (result)
            {
                mensajeError.Text = "";
                panelDatosOperario.Visible = true;
                idOperario.Enabled = false;
                checkOperario.Enabled = false;
            }
            else
            {
                mensajeError.Text = "Operario no encontrado!";
                panelDatosOperario.Visible = false;
            }
        }

        protected void resetButton_Click(object sender, EventArgs e)
        {
            cargarDatosOperario(Int32.Parse(idOperario.Text));
        }

        /// <summary>
        /// carga los datos de un operario a partir de su id
        /// </summary>
        /// <param name="idoperario">el id del operario</param>
        /// <returns>true si se encontró a un operario con ese id</returns>
        protected bool cargarDatosOperario(int idoperario)
        {
            bool resultado = false;
            Empleado c = Proxy.consultarDatosEmpleado(idoperario, 'O');
            
            if (c.getNombre() != "error")
            {
                eo_nombre.Text = c.getNombre();
                eo_app.Text = c.getApellidos();
                eo_dni.Text = c.getDNI();
                eo_fechaN.Text = c.getFechaNacimiento().ToShortDateString();
                eo_sexo.Text = c.getSexo().ToString();
                eo_dirTipo.Text = c.getDireccion().getTipoCalle();
                eo_direccion.Text = c.getDireccion().getNombreCalle();
                eo_dirNum.Text = c.getDireccion().getNumeroCalle().ToString();
                eo_dirPiso.Text = c.getDireccion().getPiso().ToString();
                eo_dirLetra.Text = c.getDireccion().getLetra().ToString();
                eo_dirEsc.Text = c.getDireccion().getEscalera();
                eo_localidad.Text = c.getDireccion().getLocalidad();
                eo_provincia.Text = c.getDireccion().getProvincia();
                eo_cp.Text = c.getDireccion().getCP().ToString();
                eo_pais.Text = c.getDireccion().getPais();
                eo_telfF.Text = c.getTelefonoFijo().ToString();
                eo_telfM.Text = c.getTelefonoMovil().ToString();
                eo_fax.Text = c.getFax().ToString();
                eo_email.Text = c.getCorreoElectronico();
                resultado = true;
            }
            return resultado;
        }

        protected void updateOperator_Click(object sender, EventArgs ea)
        {
            Empleado e = new Empleado();
            e.setIdEmpleado(Int32.Parse(idOperario.Text));
            e.setNombre(eo_nombre.Text);
            e.setApellidos(eo_app.Text);
            e.setDNI(eo_dni.Text);
            e.setFechaNacimiento(DateTime.Parse(eo_fechaN.Text));
            e.setSexo(eo_sexo.Text.ToCharArray()[0]);
            Direccion d = new Direccion();
            d.setTipoCalle(eo_dirTipo.Text);
            d.setNombreCalle(eo_direccion.Text);
            d.setNumeroCalle(Int32.Parse(eo_dirNum.Text));
            d.setPiso(Int32.Parse(eo_dirPiso.Text));
            d.setLetra(eo_dirLetra.Text.ToCharArray()[0]);
            d.setEscalera(eo_dirEsc.Text);
            d.setLocalidad(eo_localidad.Text);
            d.setProvincia(eo_provincia.Text);
            d.setCP(Int32.Parse(eo_cp.Text));
            d.setPais(eo_pais.Text);
            e.setDireccion(d);
            e.setTelefonoFijo(Int64.Parse(eo_telfF.Text));
            e.setTelefonoMovil(Int64.Parse(eo_telfM.Text));
            e.setFax(Int64.Parse(eo_fax.Text));
            e.setCorreoElectronico(eo_email.Text);
            
            bool x = Proxy.modificarEmpleado(e);
            
            if (x)
            {
                Response.Write("<script>alert('Datos modificados para el operario ')</script>");
            }
        }

        protected void cancelar_Button_Click(object sender, EventArgs e)
        {
            mensajeError.Text = "";
            panelDatosOperario.Visible = false;
            idOperario.Enabled = true;
            checkOperario.Enabled = true;
        }
    }
}
